<?php

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

namespace App\Services;

/**
 * 师傅相关
 * @author ownfi
 */
interface IMasterService {

    /**
     * 根据userid获取用户记录
     * @param $userid
     * @return mixed
     */
    public function getUserByUserid($userid);

    /**
     * 根据微信userid获取用户记录
     * @param type $weixinUserid
     */
    public function getUserByWeixinUserid($weixinUserid);

    /**
     * 获取用户个人资料
     * @param $userid
     * @return mixed
     */
    public function getDetailByUserid($userid);

    /**
     * 添加一个师傅
     * @param $phoneNum
     * @param $realName
     * @param $idcardNum
     * @param $baseAreaId
     * @param $serviceAreaIds
     * @param $serviceCategory
     * @param $serviceTypes
     * @param $idcardFront
     * @param $idcardBack
     * @param $idcardHold
     * @return mixed
     */
    public function add($weixinUserId,$phoneNum,$realName,$idcardNum,$baseAreaId,array $serviceAreaIds,$serviceCategory,array $serviceTypes,$idcardFront,$idcardBack,$idcardHold);

    /**
     * 修改师傅关联的微信企业号用户id和更新openid
     * @param $master_id
     * @param $weixin_userid
     * @return mixed
     */
    public function updateWeinxinUserid($master_id,$weixin_userid);

    /**
     * 检查手机号码是非已被使用
     * @param $phone
     * @return mixed
     */
    public function phoneExists($phone);

    /**
     * 更改师傅手机号码
     * @param $master_id
     * @param $phone
     * @return mixed
     */
    public function changePhone($master_id,$phone);

    /**
     * 更改所在地区
     * @param $master_id
     * @param $areaId
     * @return mixed
     */
    public function changeArea($master_id,$areaId);

    /**
     * 更改服务类型
     * @param $master_id
     * @param $areaId
     * @return mixed
     */
    public function changeServiceType($master_id,array $serviceType);

    /**
     * 更改服务区域
     * @param $master_id
     * @param $areaId
     * @return mixed
     */
    public function changeServiceAreaIds($master_id,array $serviceAreaIds);

    /**
     * 修改附加服务
     * @param $master_id
     * @return mixed
     */
    public function changeServiceExtra($master_id,$extra_finish_in,$extra_nothing_fee,$extra_repair_free,$extra_floor_free,
                                       $extra_carry_fee,$extra_far_fee,$extra_tmall_examine,$extra_storage,$extra_move_free);

    /**
     * 申请更改头像，等待审核
     * @param $master_id
     * @param $head_img
     * @return mixed
     */
    public function intendChangeHeadimg($master_id,$head_img);

    /**
     * 更改师傅个人资料
     * @param $master_id
     * @param array $updates
     * @return mixed
     */
    public function updateDetail($master_id,array $updates);

    /**
     * 由商家端服务类型转换为师傅端服务类型
     * @param $merchant_service_type
     * @return array
     */
    public function transformMerchantServiceType($merchant_service_type);

    /**
     * 获取师傅未读消息总数，包括系统消息、订单消息
     * @param $master_id
     * @return array($system_message_count,$order_message_count)
     */
    public function getMessageCount($master_id);

    /**
     * 获取系统消息列表
     * @param $master_id
     * @return mixed
     */
    public function listSystemMessage($master_id);

    /**
     * 获取订单消息列表
     * @param $master_id
     * @return mixed
     */
    public function listOrderMessage($master_id);

}
